package com.gzy.literature.service;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageInfo;
import com.gzy.literature.entity.Users;
import com.gzy.literature.entity.Works;
import org.apache.ibatis.annotations.Param;
import org.springframework.data.domain.PageRequest;

public interface UsersService {
    /**
     * 根据账号和密码登录
     *
     * @param account 账号
     * @param password 密码
     * @return 匹配的User对象，如果没有找到则返回null
     */
    Users login(String account, String password);
    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    Users queryById(Integer id);
    /**
     * 分页查询用户列表
     *
     * @param users 查询条件（可以为null，表示无条件查询）
     * @param pageNum 页码，从1开始
     * @param pageSize 页面大小
     * @return 分页查询结果
     */
    PageInfo<Users> queryAll(Users users, int pageNum, int pageSize);
    /**
     * 新增用户数据
     *
     * @param users 实例对象
     * @return 新增后的实例对象（包含数据库生成的主键等）
     */
    Users insert(Users users);
    /**
     * 修改用户数据
     *
     * @param users 实例对象（包含要修改的字段）
     * @return 修改后的实例对象
     */
    Users update(Users users);
    /**
     * 通过主键删除用户数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Integer id);
    /**
     * 根据用户名查询用户
     *
     * @param username 用户名
     * @return 匹配的User对象，如果没有找到则返回null
     */
    Users queryByUsername(String username);
    /**
     * * 检查用户名是否已存在
     * *
     * * @param username 用户名
     * * @return 如果用户名已存在则返回true，否则返回false
     * */
    boolean isUsernameExist(String username);
}


